ARMEdit: SWI Calls

ARMEdit_TalkTX

ARMEdit_TalkTX
(SWI &4BC43)
Send a message to another client task

On entry:R0 =client handle for this task
R1 =either the ID or client handle for the recipient (if R2 not 0)
R2 =pointer to block containing the message to send, or 0 to check if the buffer already contains a message

On exit:R2 =pointer to message buffer, or 0 if no message is waiting to be delivered.

Interrupts:Interrupt status is undefined
Fast interrupts are enabled

Processor mode:Processor is in SVC mode

Re-entrancy:SWI is not re-entrant

Use: Send a message to another task. The destination task can be specified using either it's ID or client handle. If the ID is specified then it will be offered to each matching task that polls it until it is acknowledged. A particular message is only offered to each task once. When sending messages to PC software (ID = 0) the handle should always be specified.

Note that the message buffer for each task can only contain a single message to send; if there is already a message waiting to be delivered then it is overwritten. When multiple clients are used, this SWI should first be called with R2 = 0 to check if a message is still waiting. Broadcast messages are never cleared automatically.


Related SWIs:ARMEdit_TalkStart, ARMEdit_TalkEnd, ARMEdit_TalkRX, ARMEdit_TalkAck, ARMEdit_TalkReply

Related vectors:None

[Contents] [Up] Copyright © Alexander Thoukydides, 2001